package sword;

/**
 * 问题：实现一个函数，将一个字符串中的每个空格替换成“%20”。例如，当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
 * @author longzj
 */
public class ReplaceSpace {

    public static void main(String[] args) {
        ReplaceSpace space = new ReplaceSpace();
        String result = space.replaceSpace(new StringBuffer("We   Are Happy"));
        System.out.println(result);
    }

    /**
     * 这里要求替换每个空格为%20<br>
     * 同时记录所有的空格，不需要一个个替换的话使用正则表示式即可：str.toString().replaceAll("\\s+","%20");
     *
     * @param str 输入的字符串
     * @return 替换后的字符串
     */
    private String replaceSpace(StringBuffer str) {
        while (true) {
            int index = str.indexOf(" ");
            if (index == -1) {
                break;
            }
            str.replace(index, index + 1, "%20");
        }
        return str.toString();
    }
}
